/**
 * @作者 伟子涵
 * @微信公号 搬砖暗夜码农
 * @开源项目 $ https://gitee.com/zhouwei5208888
 * @我的博客 $ http://itzhouwei.com
 * @创建时间 2023/12/21  11:19
 */
package com.itzhouwei.minis.beans.factory.config;

import com.itzhouwei.minis.beans.BeansException;

/**
 * @description: $SingletonBeanRegistry 将管理单例 Bean 的方法规范好
 * @author：zw，微信：yingshengzw
 * @date: 2023/12/21  11:19 
 * @Copyright： 公众号：搬砖暗夜码农 | 博客：https://itzhouwei.com - 沉淀、分享、成长，让自己和他人都能有所收获！
 */
@SuppressWarnings("all")
public interface SingletonBeanRegistry {

    /***
     * 注册单例
     * @param beanName
     * @param singletonObject
     */
    void  registerSingleton(String beanName, Object singletonObject) ;

    /***
     * 获取单例
     * @param beanName
     * @return
     * @throws BeansException
     */
    Object getSingleton(String beanName) throws BeansException;

    /***
     *  是否存在
     * @param beanName
     * @return
     */
    boolean containsSingleton(String beanName);

    String[]  getSingletonNames();
}
